<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>02_CSS选择器</title>
  <style>
    h4{
      /*1.标签名选择器：选中指定标签名的这类元素*/
      color: red;
    }
    /*2.id选择器：选中指定id值的唯一一个元素*/
    #d1{
      width: 100px;
      height: 100px;
      background-color: pink;
      border: 5px solid purple;
      color: green;
    }
    /*3.类选择器：选中指定类名的所有元素*/
    .msg{
        color: white;
        border: 2px solid black;
    }
    .error{
        background-color: red;
    }
    .success{
        background-color: green;
    }
    /*4.伪类选择器：选中的是元素的某种状态*/
    /*5.并列选择器：指的是两个选择器紧挨在一起的写法，必须两个选择器条件都满足才会生效*/
    a:link{/*超链接未被访问过的状态*/
        color: gray;
    }
    a:visited{/*超链接已经被访问过的状态*/
        color: green;
    }
    a:hover{/*鼠标悬停时的状态*/
        color: orange;
    }
    a:active{/*超链接被激活时的状态*/
        color: red;
    }
    #d1:hover{
        background-color: lightsalmon;
    }
    /*  6.群组选择器：可以写多个选择器，使用逗号隔开，是"或"的关系，只要满足其中一个选择器就可生效*/
    h4,#d1,.error{
        font-size: 30px;
    }
    /*7.通用选择器：选中页面中的所有元素*/
    *{
        font-style: italic;/*文字效果：倾斜*/
    }
    /*8.后代选择器(空格)：选中指定元素下的所有后代元素*/
    #d2 span{
        background-color: yellow;
    }
    /*9.子代选择器(大于号)：选中指定元素下的直接子元素*/
    #d2>div>p>span{
        color: red;
    }
  </style>
</head>
<body>
    <div id="d1">我是div</div>
    <div>我是div</div>
    <p>我是段落</p>
    <h4>我是标题</h4>
    <h4>我是标题</h4>
    <hr>
    <span class="error msg">用户名被占用</span>
    <span class="error msg">两次密码不一致</span>
    <span class="error msg">错误的手机号格式</span>
    <br>
    <span class="success msg">邮箱验证已通过</span>
    <span class="success msg">用户名可以使用</span>
    <span class="success msg">手机号已验证</span>
    <hr>
    <a href="https://www.baidu.com">超链接1</a>
    <a href="abc">超链接2</a>
    <hr>
    <div id="d2">
        <span>111</span>
        <div>
            <span>222</span>
            <p>测试文字</p>
            <p>测试<span>333</span>文字</p>
        </div>
        <span>444</span>
    </div>
</body>
</html>